昨天幫我們的 Repo 加了 License,接下來今天要來介紹如何把 Github 上面的程式碼拉到我們本地端(Local),也是從網路上把程式碼下載回到我們的電腦進行修改與編輯。之後我們就可以在本地端開發完後就能再上傳回 Github。如果以後有其他人一起開發這個開源,也可以這樣下載別人完成的部分到我們電腦。
在那之前,要先跟大家介紹 Git
這個工具,簡單來說他是 Github 運行的基礎,同時也是我們在開發的時候使用的版本控制工具。在我們開發的時候,有時候除了我們自己在開發的時候會有不同的版本,也會有不同工程師一起開發的時候,他們也會有各自的版本。以前我們在管理這些版本時,可能會用命名的方式,像是 code_v2
來代表第二版,或是 code_2024_09_21
代表是今天 2024/09/21 的版本。但是這樣會有個問題,隨著開發不斷的進行,程式碼也會越來越龐大,不斷複製新版本會十分佔空間,另一個就是假設兩個人同時開發同一個地方的程式碼,最後要用誰的,要怎麼合併或是刪除也是個問題。這時候,Git
這個工具出來了,他會產生一個 .git
在目標的資料夾,然後在每次修改的時候,會透過他的 diff
功能,判斷哪些檔案有哪些改動,之後使用者就能用 commit
就紀錄那些改動。檔案的 diff 可以參考下圖(來源是我在 pybaseball 開的 Pull Request,之後會解釋什麼是 Pull Request):
範例顯示的結果就是我把原本第 14 行的程式碼改成 右邊 14, 15 行的程式碼。
另外還有一點,Git 還有一個 分支(Branch)
的概念,可以想像我們整個專案是一棵樹(Tree)
,那有一個主要的枝幹叫 main
,我們要修改別的版本,可以從 main
長出其他 branch
,等在 branch
裡開發完,就能 合併(Merge)
回我們的主幹。中間在分支的開發不會影響到主幹,只有等要合併的時候才會檢查修改的部分,確認沒問題程式碼就能回主幹,讓我們的主幹是全新的程式碼。如果檢查不成功,那就代表分支的程式碼跟主幹的程式碼有衝突(Conflict)
,可能的原因就是同一區塊的修改有兩種不同版本,因為有可能有複數的分支同時進行修改,這時後就要先決定要用哪個版本進主幹來解除衝突。
介紹完 Git 的基本要素,回到我們的剛創建的 Repo ,就可以看到目前我們能使用的 Branch 目前只有 main
,之後我們開發可能就會開其他的分支,就能在這邊查詢:
Git 我認為是一個現今非常重要的技術,很推薦大家去熟悉他,這邊也推薦一些不錯的網站:
接下來介紹如何下載 git
,這邊簡單介紹一下各個環境如何下載:
如果是使用 Mac,要下載 git 很簡單,只要打開終端器,輸入下面的指令就能下載好了:
// 下載 homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
// 使用 Homebrew 下載 Git
brew install git
// 查看當前 Git 版本
git --version
如果是 Linux 系統,一樣開啟終端機,執行下面的指令便可下載完成:
apt-get install git
git --version
Windows 的話會推薦 Github for Windows 的圖形化介面(GUI),他不但會下載 Git,也可會有個介面讓使用者在上面操作 Git 的指令,其實 Mac 等其他的也有 GUI,比較習慣使用圖形介面的人可以參考 GitHub Desktop
各環境下載先介紹到這邊,不過其實可能還有很多方式能下載,篇幅問題不一一介紹了,不過這邊也一樣有參考網站提供給大家參考看看,如果我有沒介紹到的系統也許就能從中找到:
今天介紹了一個不管是程式開發或是參與開源都很重要的工具 Git,希望大家都安裝的順利。原本還預計一起介紹如何把程式碼拉到本地端,但後來寫一寫發現篇幅安排到明天跟 Git 指令一起介紹會比較好,所以只好讓大家等到下一篇了。
最後一樣感謝大家耐心地看完,如果有任何問題與建議歡迎直接在留言讓我知道,明天見 掰掰